在本文中,我们将为您详细介绍java中的REGEX用于提取字符串中连续的重复字符的相关知识,并且为您解答关于java中的regex用于提取字符串中连续的重复字符吗的疑问,此外,我们还会提供一些关于c#
在本文中,我们将为您详细介绍java中的REGEX用于提取字符串中连续的重复字符的相关知识,并且为您解答关于java中的regex用于提取字符串中连续的重复字符吗的疑问,此外,我们还会提供一些关于c# – 如何删除字符串中的重复字符、java 如何提取字符串中的指定字符、JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项、javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”的有用信息。
本文目录一览:- java中的REGEX用于提取字符串中连续的重复字符(java中的regex用于提取字符串中连续的重复字符吗)
- c# – 如何删除字符串中的重复字符
- java 如何提取字符串中的指定字符
- JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项
- javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”
java中的REGEX用于提取字符串中连续的重复字符(java中的regex用于提取字符串中连续的重复字符吗)
如何解决java中的REGEX用于提取字符串中连续的重复字符?
问题:在字符串中打印个字符连续重复两次(不能更多).
示例:
1)"aaabbaa" : b 和 a
2)"aabbaa" : a and b and a
3)"阿爸": b
我尝试过的代码:
String str = "aabbbbcccd";
模式 p = Pattern.compile("(\w){2}");
匹配器 m = p.matcher(str);
while(m.find())
{
System.out.println(m.group(1));
}
输出:
a
b
b
c
d
虽然,所需的输出是
一个
后记
由于我最近开始使用正则表达式,如果回答者能解释一下,我将不胜感激
简单使用的正则表达式(尤其是量词和组)。
解决方法
这个问题没有单一的正则表达式解决方案,因为您需要一个带有内部反向引用的lookbehind,而Java正则表达式引擎不支持。
您可以做的是获取所有 (\w)\1+
匹配项,然后使用常用字符串方法检查它们的长度:
String s = "aaabbaa";
Pattern pattern = Pattern.compile("(\\w)\\1+");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
if (matcher.group().length() == 2) System.out.println(matcher.group(1));
}
(参见 Java demo)或者您可以匹配 3 次或更多重复或仅重复 2 次,并且仅在第 2 组匹配时才抓取匹配:
String s = "aaabbaa";
Pattern pattern = Pattern.compile("(\\w)\\1{2,}|(\\w)\\2");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
if (matcher.group(2) != null)
System.out.println(matcher.group(2));
}
见this Java demo。 正则表达式详情:
-
(\w)\1{2,}
- 一个单词 char 和紧跟其后的两个或多个相同字符 -
|
- 或 -
(\w)\2
- 一个字符字符和紧跟其后的相同字符。
c# – 如何删除字符串中的重复字符
当然,用户会发表如下评论:
‘OMGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG!!!!!!!!!!!!!!!’
要么
‘YOU SUCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKK’
你懂了.
基本上,我想通过删除至少大部分超重复字符来缩短这些评论.
我确定有一种方法可以使用Regex …,但是不能弄清楚.
有任何想法吗?
解决方法
Regex r = new Regex("(.)(?<=\\1\\1\\1)",RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled); var x = r.Replace("YOU SUCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKK",String.Empty); // x = "YOU SUCCKK" var y = r.Replace("OMGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG!!!!!!!!!!!!!!!",String.Empty); // y = "OMGG!!"
java 如何提取字符串中的指定字符

您可以使用 Java 中的字符串处理方法来提取字符串中的指定字符。以下是一种常见的方法:
1. 使用 String 类的 charAt () 方法,该方法可以获取指定位置上的字符。例如,如果要提取字符串中的第一个字符,可以使用以下代码:
```java
String str = "Hello World";
char firstChar = str.charAt(0);
System.out.println (firstChar); // 输出:H
```
2. 使用 String 类的 substring () 方法,该方法可以提取指定范围内的字符串。例如,如果要提取字符串中的前三个字符,可以使用以下代码:
```java
String str = "Hello World";
String subStr = str.substring(0, 3);
System.out.println (subStr); // 输出:Hel
```
3. 使用正则表达式来提取指定字符。可以使用 String 类的 matches () 方法结合正则表达式来判断字符串中是否包含指定字符,然后再进行提取。例如,如果要提取字符串中的所有数字,可以使用以下代码:
```java
String str = "I have 123 apples";
String digits = str.replaceAll ("\\D", ""); // 使用正则表达式去除非数字字符
System.out.println (digits); // 输出:123
```
请根据您的具体需求选择适合的方法进行提取。
JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项
我正在尝试解析以下类型的字符串:
[key:"val" key2:"val2"]
里面有任意键:“ val”对。我想获取键名和值。对于那些好奇的人,我试图解析任务战士的数据库格式。
这是我的测试字符串:
[description:"aoeu" uuid:"123sth"]
这是要强调的是,除了空格,冒号周围没有空格而且值始终用双引号引起来,键或值中的任何内容都可以位于键或值中。
在节点中,这是我的输出:
[deuteronomy][gatlin][~]$ node> var re = /^\[(?:(.+?):"(.+?)"\s*)+\]$/g> re.exec(''[description:"aoeu" uuid:"123sth"]'');[ ''[description:"aoeu" uuid:"123sth"]'', ''uuid'', ''123sth'', index: 0, input: ''[description:"aoeu" uuid:"123sth"]'' ]
而且description:"aoeu"
也符合这种模式。如何找回所有比赛?
答案1
小编典典继续re.exec(s)
循环调用以获取所有匹配项:
var re = /\s*([^[:]+):\"([^"]+)"/g;var s = ''[description:"aoeu" uuid:"123sth"]'';var m;do { m = re.exec(s); if (m) { console.log(m[1], m[2]); }} while (m);
javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”
`<html> <head> <title>DailyHoroscope.com</title> <Meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> {if $contact['timezone']} {assign var=local_tz value=$contact['timezone']} {else} {assign var=local_tz value='America/New_York'} {/if} {assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"} </head> <body> </body> </html>`
在这段代码中,我需要在{}中获得子串.
我正在使用这个RegEx
/\{([^}]*)\}/mig
它适用于那些只包含一个{和}的子串的类型.喜欢
{if $contact['timezone']}
但是这个字符串的含义—>
{assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"}
我期待整个字符串作为结果,但它返回我
{assign var=tracking_params value="utm_medium={$medium},{$source} and {$campaign}
这是正确的,因为我的正则表达式在获得第一个’}后结束;有没有办法得到使用regEx包含相同数量的'{‘和’}’的字符串?什么是RegEx?
解决方法
\{((?:[^{}]*\{[^{}]*\})*[^}]*)\}
见demo
火柴:
if $contact['timezone'] assign var=local_tz value=$contact['timezone'] else assign var=local_tz value='America/New_York' /if assign var=tracking_params value="utm_medium={$medium}&utm_source={$source}&utm_campaign={$campaign}"
关于java中的REGEX用于提取字符串中连续的重复字符和java中的regex用于提取字符串中连续的重复字符吗的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于c# – 如何删除字符串中的重复字符、java 如何提取字符串中的指定字符、JavaScript RegEx使用RegExp.exec从字符串中提取所有匹配项、javascript – RegEx:从字符串中提取子字符串,该字符串可能包含多个“{”和“}”的相关信息,请在本站寻找。
本文标签: