Regex, который будет Соответствовать Объявлению метода Java

Если это то, что вы просто пытаетесь загрузить на элемент, попробуйте использовать это. При загрузке страницы он добавит ваше целевое свойство с правильным атрибутом.

$ (your_element_here) .prop ('target', '_blank');

17
задан Anton 25 September 2008 в 01:37
поделиться

5 ответов

Вы рассмотрели соответствие фактическим возможным ключевым словам? такой как:

(?:(?:public)|(?:private)|(?:static)|(?:protected)\s+)*

Это могло бы быть немного более вероятно соответствовать правильно, хотя это могло бы также сделать regex тяжелее для чтения...

2
ответ дан 30 November 2019 в 11:18
поделиться

Я придумал это:

\b\w*\s*\w*\(.*?\)\s*\{[\x21-\x7E\s]*\}

Я протестировал его против функции PHP, но это должно работать все равно, это - отрывок кода, который я использовал:

function getProfilePic($url)
 {
    if(@open_image($url) !== FALSE)
     {
        @imagepng($image, 'images/profiles/' . $_SESSION['id'] . '.png');
        @imagedestroy($image);
        return TRUE;
     }
    else 
     {
        return FALSE;
     }
 }

Подробнее:

Options: case insensitive

Assert position at a word boundary «\b»
Match a single character that is a “word character” (letters, digits, etc.) «\w*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match a single character that is a “whitespace character” (spaces, tabs, line breaks, etc.) «\s*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match a single character that is a “word character” (letters, digits, etc.) «\w*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the character “(” literally «\(»
Match any single character that is not a line break character «.*?»
   Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character “)” literally «\)»
Match a single character that is a “whitespace character” (spaces, tabs, line breaks, etc.) «\s*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the character “{” literally «\{»
Match a single character present in the list below «[\x21-\x7E\s]*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
   A character in the range between ASCII character 0x21 (33 decimal) and ASCII character 0x7E (126 decimal) «\x21-\x7E»
   A whitespace character (spaces, tabs, line breaks, etc.) «\s»
Match the character “}” literally «\}»


Created with RegexBuddy
2
ответ дан 30 November 2019 в 11:18
поделиться

Я - regex механизм вполне уверенного Java, является жадным по умолчанию, означая, что "\w+ +\w+ *\(.*\) *\{" никогда не будет соответствовать, начиная с .* в круглой скобке съест все после открытия paren. Я рекомендую заменить .* [^)], этот путь Вы, он выберет все non-closing-paren символы.

ПРИМЕЧАНИЕ: Mike Stone исправил меня в комментариях, и так как большинство людей действительно не открывает комментарии (я знаю, что часто не замечаю их):

Жадный не означает, что это никогда не будет соответствовать..., но это съест parens, если будет больше parens после для удовлетворения остальной части regex... так, например, "общедоступное пустое нечто (международный аргумент) {если (тест) {System.exit (0); }}" не будет соответствовать правильно...

2
ответ дан 30 November 2019 в 11:18
поделиться

Подсказка:

, Если Вы собираетесь записать regex в Perl, используйте "xms" опции так, чтобы можно было оставить пробелы и зарегистрировать regex. Например, можно записать regex как:

 m{\w+ \s+      #return type
   \w+ \s*      #function name
   [(] [^)]* [)] #params
   \s* [{]           #open paren
  }xms

Одна из опций (думают x) позволяет комментарии # в regex. Также используйте \s вместо a "". \s обозначает любой "пустой" символ. Таким образом, вкладки также соответствовали бы - который является тем, что Вы хотели бы. В Perl Вы не должны использовать//, можно использовать {} или <> или | |.

Не уверенный, если другие языки имеют эту способность. Если они делают, то используйте их.

1
ответ дан 30 November 2019 в 11:18
поделиться
(public|protected|private|static|\s) +[\w\<\>\[\]]+\s+(\w+) *\([^\)]*\) *(\{?|[^;])

Я думаю, что приведенное выше регулярное выражение может соответствовать почти всем возможным комбинациям объявлений методов Java, даже те, которые включают обобщения и массивы, являются возвращаемыми аргументами, которым регулярное выражение, предоставленное исходным автором, не соответствовало.

22
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: