java正则匹配出字符串"-s "*.csv*"中csv
时间: 2023-11-21 11:13:05 浏览: 35
可以使用正则表达式 `(?<=\*\.)([^*]+)` 来匹配出字符串中的 `csv`。
```java
String str = "-s \"*.csv*\"";
Pattern pattern = Pattern.compile("(?<=\\*\\.)([^*]+)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String csv = matcher.group(1);
System.out.println(csv); // 输出:csv
}
```
该正则表达式使用了正则表达式中的零宽度正回顾后发断言 `(?<=...)`,表示匹配前面的内容,但不包括该内容本身。其中 `\\*\\.` 表示匹配 `*.`,`[^*]+` 表示匹配除了 `*` 以外的任意字符,`()` 表示捕获匹配到的内容。使用 `group(1)` 即可获取到捕获到的内容。
相关问题
python请用正则表达式获取学生姓名、学号存入CBC.csv中。
假设学生姓名和学号的格式为“姓名:学号”,可以使用正则表达式来匹配并提取信息。以下是一个示例代码:
```python
import re
import csv
# 定义正则表达式
pattern = r'(\w+):(\d+)'
# 读取文本文件
with open('students.txt', 'r') as f:
content = f.read()
# 使用正则表达式提取信息
matches = re.findall(pattern, content)
# 将提取的信息写入 CSV 文件
with open('CBC.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['姓名', '学号'])
writer.writerows(matches)
```
在上面的代码中,我假设学生姓名和学号之间使用冒号分隔。首先定义了一个正则表达式,使用 `re.findall` 函数匹配文本中所有符合模式的字符串,并将结果存储在 `matches` 变量中。然后使用 `csv.writer` 将匹配结果写入到 CSV 文件中。
python 匹配字符串‘'../best_status/GGNN_3edge/GGNN-loss_lr_9e-07_WeightDecay_7e-05_workers_8_batchSize_8_hidden_100_patience_10_size_512_steps_24.csv’ 中最后一个‘/’ 与 '.'之间的字符串
可以使用正则表达式来匹配字符串中最后一个`/`和`.`之间的字符串,具体的正则表达式如下:
```python
import re
text = "../best_status/GGNN_3edge/GGNN-loss_lr_9e-07_WeightDecay_7e-05_workers_8_batchSize_8_hidden_100_patience_10_size_512_steps_24.csv"
pattern = r"/([^/]*)\."
result = re.search(pattern, text)
if result:
print(result.group(1)) # 输出 GGNN_3edge
```
上述代码中,正则表达式`/([^/]*)\.`表示匹配最后一个`/`和`.`之间的所有非`/`字符。其中,`[^/]`表示匹配任意一个非`/`字符,`*`表示匹配前面的字符0次或多次,`\.`表示匹配`.`字符。使用`re.search()`函数可以在`text`中查找符合模式的第一个字符串,并将其以`match`对象的形式返回。最后,使用`group(1)`方法可以获取匹配到的第一个子组,即最后一个`/`和`.`之间的字符串`GGNN_3edge`。