我正在处理一些正则表达式,并尝试从以下看起来像列表的字符串中获取字符串
String stringList = "['my', 'na_me', 'is', 't-est']";
这样我就可以获得所有匹配结果的列表并将其放入真实列表中。
我尝试使用此表达式\w+
,但是't-est'
字符串被拆分为该表达式。看起来不错,没有包含连字符 -
List<String> list = ['my', 'na_me', 'is', 't', 'est'];
我一直在寻找的结果如下
List<String> list = ['my', 'na_me', 'is', 't-est'];
我无法获得想要的结果,请帮助
答案 0 :(得分:1)
您可以使用以下正则表达式const Foo = ({ onConfirm }) => {
return (
<ModalWrapper
onConfirm={onConfirm}
body="Hello"
>
{showModal => (
<Button onClick={showModal}>Show modal</Button>
)}
</ModalWrapper>
);
}
。
这是一个例子:
[\w-]+
希望我进一步推动了你。
答案 1 :(得分:1)
通过使用正则表达式'([^']*)'
,内容可以是任何字符,只要它不是'
。
我假设您只是想要不带引号的值。
import java.util.List;
import java.util.ArrayList;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test {
public static void main(String[] args) {
String input ="['my', 'na_me', 'is', 't-est']";
List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("'([^']*)'")
.matcher(input); /** note the "\\" two times to get an escaped "\" **/
while (m.find())
allMatches.add(m.group(1));
System.out.println(allMatches); /** output: [my, na_me, is, t-est] **/
}
}