Java 仅在块中允许指定正则表达式
Java 仅在块中允许指定正则表达式,java,regex,Java,Regex,[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF.!?:)(,;1234567890%-#]+$ 对于前正则表达式,每个阿拉伯语句子和数字都被认为是匹配的 现在正则表达式应该匹配句子中包含的任何其他电子邮件地址。(电子邮件前后不需要空格) 要匹配的正则表达式是什么?好的,首先您应该将正则表达式写成: [\u0600-\u06FF\uFB8A\u067E\u0686\u06AF \.!?:)(,;1234567890%\-_#]+$ 这里,%\-内部的[…]表示%或-
[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF.!?:)(,;1234567890%-#]+$
对于前正则表达式,每个阿拉伯语句子和数字都被认为是匹配的 现在正则表达式应该匹配句子中包含的任何其他电子邮件地址。(电子邮件前后不需要空格)
要匹配的正则表达式是什么?好的,首先您应该将正则表达式写成:
[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF \.!?:)(,;1234567890%\-_#]+$
这里,%\-
内部的[…]
表示%
或-
或
,而您的%-
表示“代码从%
到
的任何符号。请尝试/[%-\u]/.exec(“)”
看看我的意思:)
符号就在这个范围内。我还把\.
放进去,突出显示它是
符号,而不是“任何符号”,尽管在这种情况下只有
可以正常工作
现在,你想在文本中允许电子邮件。好吧,但对于简单的情况,你可以使用
[\w\-]+@[\w\-\.]+\.\w+
无论如何,一旦您选择了电子邮件rexep(可能是其中一个复杂的解决方案),您应该像这样将其连接到您的regexp(我使用上面显示的简单方法):
但这不会处理空白,这意味着这不会检查电子邮件前后是否有空格/制表符/标点符号。这意味着此文本也将有效:
<arabic> <arabic> <arabic>email<arabic> <arabic>.
/\ /\ no whitespace or punctuation here
电子邮件。
/\/\n此处没有空格或标点符号
Regex的文档非常完整,很容易在网站上找到,在这个网站上,你应该在提问之前做足够的研究。像“我对Regex不是很精通,如果你能帮我的话,我会感谢你的”这样的陈述被解释为“我太懒了,不能做研究,请给我一个答案。”“。如果您访问并阅读以了解此网站的内容,可能会有所帮助。@Jim Garrison不应该这样解释,我在此之前已经提交了我的工作。”。我要寻找的答案对于中级开发人员来说要困难得多。你知道你现在的正则表达式是如何工作的吗?如果是,是什么阻止您应用相同的逻辑/机制从所选范围中选取所有字符?不清楚“介于@和空格之间”是什么意思。您当前的正则表达式中没有“@”。我认为,你应该重新措辞你的问题。我猜你不仅要匹配阿拉伯语,还要匹配包含电子邮件的阿拉伯语,对吗?@YakovL是的,没错。虽然我得到了-4,但我的问题解决了。谢谢你。@Mehrdad你可能仍然应该尽力编辑和澄清这个问题。不幸的是,这很难理解,尽管我的猜测是正确的。如果你做得相当好,我甚至可以投你一票。无论如何,欢迎您。只需一个简短的问题,regex开头的?:
是什么?@Mehrdad它是非捕获组包装的一部分(?:…)
,请参阅
<arabic> <arabic> <arabic>email<arabic> <arabic>.
/\ /\ no whitespace or punctuation here