сотрудничество. корпорация вкл. регулярное выражение - PullRequest
1 голос
/ 09 июня 2009

Я впервые работаю с регулярными выражениями, и я пытался заставить работать регулярное выражение, которое бы соответствовало следующему:

  • яблоко
  • яблоко вкл.
  • apple co.
  • яблочная корпорация.

но не будет соответствовать:

  • вкл. яблоко
  • Ко. яблоко
  • apple co. вкл.
  • Apple Corp. вкл.
  • яблоко вкл. АМФ.
  • и так далее ...

Это то, что я получил до сих пор (яблоко) \ s (inc | corp | co). $

Думаю, вы могли бы помочь:)

РЕДАКТИРОВАТЬ: он должен работать в Java. Есть ли в Java собственный синтаксис для регулярных выражений?

Ответы [ 3 ]

3 голосов
/ 09 июня 2009

Ты почти там:

^apple(?:\s(?:inc|co|corp)\.)?$

Обратите внимание, что если вы хотите, чтобы ваше регулярное выражение не учитывало регистр, вы должны либо пропустить флаг CASE_INSENSITIVE при создании шаблона, либо добавить (?i) к шаблону.

1 голос
/ 09 июня 2009

Попробуйте это:

(?<!(?:inc|co|corp)\.\s)apple(?:\s(?:inc|co|corp)\.)?

Используется отрицательный вид сзади (?<! ) для предотвращения префиксов, а также группы без захвата (?: ) для удаления ненужных обратных ссылок.

. переведен в \., так как в противном случае он является символом регулярного выражения, означающим «любой символ».

$, который вы использовали, означает конец строки - поэтому, если вы не хотите, чтобы это совпадало только в конце вашей строки, вы не хотите этого.
Однако, если вы ищете специально для всей строки, являющейся "apple inc." (и т. д.), затем вы можете оставить $ и заменить отрицательный вид сзади на ^, чтобы упростить выражение до:

^apple(?:\s(?:inc|co|corp)\.)?$
1 голос
/ 09 июня 2009

Попробуйте что-то вроде этого:

^apple\s?(inc|corp|co)?\.?$

Будьте осторожны с точками (.), Поскольку они являются символами подстановки (перед ними ставьте обратную косую черту).

? значит не требуется

^ означает начало строки

$ означает конец строки

Смотрите здесь для более полного объяснения: http://www.anaesthetist.com/mnm/perl/Findex.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...