Я использую этот шаблон регулярного выражения = "(?ius)[(?<=\\s)]\\bgo\\b(?=\\s)"
.regex pattern: split() vs find()
Цель, если фильтровать команды t-sql с «go» в качестве разделителя.
Пример кода T-SQL:
select * from table1 go
select * from table2
go select * from table3
Схема работает с методом split()
, но он не работает с методом find()
.
Пример результата с split()
методом:
select * from table1
select * from table2
select * from table3
Пример результата с find()
методом:
select * from table1 go
select * from table2
go select * from table3
швы имеют проблемы, когда «идти» находится в конце строки или в начале. Если первый «ход» имел место после него, он работает. Я уже несколько раз пробовал несколько вещей. В моем случае мне действительно нужно использовать метод find()
, я не могу просто полагаться на split, потому что мне нужно подтверждение, что «строка» как разделитель перед выполнением разделения.
Я предположил, что вы имели в виду 'matches()' вместо 'matcher()', но теперь я не уверен, что это было правильно. Можете ли вы показать фактический код, который используете? –
Я имел в виду подшивку(). См. Ниже ответ и комментарий. – HAT
Хорошо, тогда я просто удалю это полностью.Метод 'matcher()' просто создает объект Matcher, поэтому вы можете вызвать его метод 'find()', поэтому вам не нужно упоминать об этом. –