匹配#hashtag 但不匹配#hashtag 的正则表达式; (带分号)
Regular Expression to match #hashtag but not #hashtag; (with semicolon)
我有当前的正则表达式:
/(?<=[\s>]|^)#(\w*[A-Za-z_]+\w*)/g
我正在针对字符串进行测试:
Here's a #hashtag and here is #not_a_tag; which should be different. Also testing: Mid#hash. #123 #!@£ and <p>#hash</p>
出于我的目的,在此字符串中应该只检测到两个主题标签。我想知道如何更改表达式,使其 不 匹配以 ;
结尾的主题标签,在我的示例中,这是 #not_a_tag;
干杯。
您可以使用负前瞻 reegex:
/(?<=[\s>]|^)#(\w*[A-Za-z_]+\w*)\b(?!;)/
\b
- 字边界确保我们在字的末尾
(?!;)
- 断言我们在下一个位置没有分号
下面的怎么样:
\B(\#[a-zA-Z]+\b)(?!;)
- \B -> 不是单词边界
- (#[a-zA-Z]+\b) -> 捕获以 # 开头的组,后跟任意数量的 a-z 或 A-Z,最后是单词边界
- (?!;) -> 后面没有 ;
类似于 anubhava 的回答,但将 \w*
的 2 个实例与 \d*
交换,因为 \w
和 [A-Za-z_]
之间的唯一区别是 0-9
字符
这具有将步骤数从 588 减少到 90 的效果
(?<=[\s>])#(\d*[A-Za-z_]+\d*)\b(?!;)
/(#(?:[^\x00-\x7F]|\w)+)/g
以#开头,然后至少一个(+)ANCII符号([^\x00-\x7F],范围不包括非ANCII符号)或文字符号(\w)。
这个应该涵盖包括“#їжак”等 ANCII 符号的情况。
这是最佳做法。
(#+[a-zA-Z0-9(_)]{1,})
您可以试试这个模式:/#\S+/
它将包括 #
之后的所有字符,空格除外。
(?<=(\s|^))#[^\s\!\@\#$\%\^\&\*\(\)]+(?=(\s|$))
匹配任何主题标签的正则表达式代码。
在这种方法中,主题标签中可以接受除主要符号之外的任何字符 !@#$%^&*()
使用说明
使用时打开“g”和“m”标志!
通过 https://regex101.com 和 VSCode 工具针对 Java 和 Java 脚本语言进行了测试。
有售
我有当前的正则表达式:
/(?<=[\s>]|^)#(\w*[A-Za-z_]+\w*)/g
我正在针对字符串进行测试:
Here's a #hashtag and here is #not_a_tag; which should be different. Also testing: Mid#hash. #123 #!@£ and <p>#hash</p>
出于我的目的,在此字符串中应该只检测到两个主题标签。我想知道如何更改表达式,使其 不 匹配以 ;
结尾的主题标签,在我的示例中,这是 #not_a_tag;
干杯。
您可以使用负前瞻 reegex:
/(?<=[\s>]|^)#(\w*[A-Za-z_]+\w*)\b(?!;)/
\b
- 字边界确保我们在字的末尾(?!;)
- 断言我们在下一个位置没有分号
下面的怎么样:
\B(\#[a-zA-Z]+\b)(?!;)
- \B -> 不是单词边界
- (#[a-zA-Z]+\b) -> 捕获以 # 开头的组,后跟任意数量的 a-z 或 A-Z,最后是单词边界
- (?!;) -> 后面没有 ;
类似于 anubhava 的回答,但将 \w*
的 2 个实例与 \d*
交换,因为 \w
和 [A-Za-z_]
之间的唯一区别是 0-9
字符
这具有将步骤数从 588 减少到 90 的效果
(?<=[\s>])#(\d*[A-Za-z_]+\d*)\b(?!;)
/(#(?:[^\x00-\x7F]|\w)+)/g
以#开头,然后至少一个(+)ANCII符号([^\x00-\x7F],范围不包括非ANCII符号)或文字符号(\w)。
这个应该涵盖包括“#їжак”等 ANCII 符号的情况。
这是最佳做法。
(#+[a-zA-Z0-9(_)]{1,})
您可以试试这个模式:/#\S+/
它将包括 #
之后的所有字符,空格除外。
(?<=(\s|^))#[^\s\!\@\#$\%\^\&\*\(\)]+(?=(\s|$))
匹配任何主题标签的正则表达式代码。
在这种方法中,主题标签中可以接受除主要符号之外的任何字符 !@#$%^&*()
使用说明
使用时打开“g”和“m”标志!
通过 https://regex101.com 和 VSCode 工具针对 Java 和 Java 脚本语言进行了测试。
有售