任何人都可以帮助我修复找到两个@符号之间的子字符串的正则表达式。模式匹配的正则表达式
例 - [email protected]@[email protected]@ghfufjkfk.
现在我想取回这两个HELLO子字符串。 在此先感谢。 这有助于我在检索数据时进行模式匹配。
任何人都可以帮助我修复找到两个@符号之间的子字符串的正则表达式。模式匹配的正则表达式
例 - [email protected]@[email protected]@ghfufjkfk.
现在我想取回这两个HELLO子字符串。 在此先感谢。 这有助于我在检索数据时进行模式匹配。
这将@
字符之间不匹配的文本:
(?<[email protected]).*?([email protected])
这些都是查找变通任一端(非消耗比赛),我已经使用之间的非贪婪的比赛,所以比赛没有按”牛逼一路跑到下一个@
包围比赛结束
如果你想要一个优雅的一行提取所有这些phraxes,这样做:
String[] phrases = input.replaceAll("(^.*[email protected])|(@[^@]*$)", "").split("@.*[email protected]");
下面是一些测试代码:
public static void main(String[] args) {
String input = "[email protected]@[email protected]@ghfufjkfk";
String[] phrases = input.replaceAll("(^.*[email protected])|(@[^@]*$)", "").split("@.*[email protected]");
System.out.println(Arrays.toString(phrases));
}
输出:
[hello, hello]
为什么你使用“后视”和“前瞻”?他们并不是真的需要在这里。 –
@RohitJain我认为他们是需要的 - 他不想在*之间的文本*之间匹配,而不是*包含*'@' – Bohemian
@Bohemian ..这也可以工作: - '@(。*?)@',并刚刚得到组1。 –
String text = "[email protected]@[email protected]@ghfufjkfk";
Pattern ptrn = Pattern.compile("@(\\w+)@");
Matcher mtchr = ptrn.matcher(text);
while(mtchr.find())
{
String match = mtchr.group(1);
System.out.println("Match = <" + match + ">");
}
谢谢泡沫..这符合我的要求 – HeyItsMe
不客气。请投票并接受答案,如果你不介意 – amphibient
嘿对不起...我正在尝试投票,但我没有足够的投票声望....当我得到所需的声望时,我肯定会投票。非常感谢 :) – HeyItsMe
字符串简单的regex之间@
:
'@(.*?)@'
说明:
@ # Match starts at literal @
(.*?) # Capture everything inbetween (non-greedy)
@ # Match ends at literal @
看到它在行动here。
'修正正则表达式' - 您希望我们修复哪一个? –
请注意,如果您在'@'之间获取内容,您还将获得'ggjgkglgll'。你必须过滤掉。 –
对于简单的分隔字符串,您可以使用split(“@”)并使用1和3索引。 –