我想接受一个数字输入,每个数字后跟一个空格,直到行尾。我想接收所有这些数字并将其存储在一个数组中。如何使用正则表达式实现此目的?
输入:4 5 6 7 9 8
输出:arr = [4,5,6,7,9,8]
String list = scan.nextLine();
Pattern pattern = Pattern.compile(Regex);
String[] matchRegex = pattern.split(list);
答案 0 :(得分:2)
您可以像以下一样使用空格分割:
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from loginform import fill_login_form
from harvest.items import HarvestItem
class TestSpider(Spider):
name = 'test'
allowed_domains = ['testdomain.secure.force.com', 'login.salesforce.com']
login_url = 'https://testdomain.secure.force.com/jSites_Home'
login_user = 'someuser'
login_password = 'p4ssw0rd'
def start_requests(self):
yield scrapy.Request(self.login_url, self.parse_login)
def parse_login(self, response):
data, url, method = fill_login_form(response.url, response.body, self.login_user, self.login_password)
return scrapy.FormRequest(url, formdata=dict(data), method=method, callback=self.get_assignments)
def get_assignments(self, response):
assignment_selector = response.xpath('//*[@id="nav"]/ul/li/a[@title="Assignments"]/@href')
return Request(urljoin(response.url, assignment_selector.extract()), callback=self.parse_item)
def parse_item(self, response):
items = HarvestItem()
items['startdatum'] = response.xpath('(//*/table[@class="detailList"])[2]/tbody/tr[1]/td[1]/span/text()')\
.extract()
return items
答案 1 :(得分:2)
您的Regex
需要与分隔符号匹配。您使用空格作为分隔符,因此您只需使用空格作为Regex。然后代码如下所示:
Pattern pattern = Pattern.compile(" ");
String[] matchRegex = pattern.split(list);
如果你想要匹配其他空格字符,你也可以使用空白组,它是\s
。
Pattern pattern = Pattern.compile("\\s");
如果可以有多个空格,您可以使用Regex
扩展+
,它会匹配“至少一个无限多”。
Pattern pattern = Pattern.compile("\\s+");
您可以使用regex101来测试Regex
输入。