是否有直接的方法来实现具有以下签名的方法?至少,实现需要处理原始类型(例如Double和Integer).非原始类型将是一个很好的奖金.
//Attempt to instantiate an object of type T from the given input string
//Return a default value if parsing fails
static <T> T fromString(String input, T defaultValue)
Run Code Online (Sandbox Code Playgroud)
对于实现FromString接口(或等效的)的对象,实现将是微不足道的,但我还没有找到任何这样的东西.我还没有找到使用反射的功能实现.
我希望能够解析的串时间,其中运行小时从0到23(小时,分,秒),并且其中用于一个位数小时前述零是任选的.
我希望能够解析为有效对象的时间字符串示例DateTime:
我试图使用C#方法DateTime.ParseExact来管理解析,但我不能在它的生命周期中提出一个格式字符串,可以处理"没有前置零的单位数小时"场景.
我应该如何指定DateTime.ParseExact格式字符串以使用相同的代码行充分解析上面的所有示例?
受自定义日期和时间格式的MSDN页面的启发,我尝试了以下方法:
DateTime.ParseExact(time_string, "Hmmss", CultureInfo.InvariantCulture);
DateTime.ParseExact(time_string, "%Hmmss", CultureInfo.InvariantCulture);
DateTime.ParseExact(time_string, "HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
所有这些格式字符串都适用于上面的前两个示例情况,但面对一位数小时而没有前面的零,所有公式都会抛出一个FormatException.
因此,我的一个主要难点是名称理解和拼凑家喻户晓的名字和头衔.我有一个80%的解决方案,我今天早上拼凑了一个非常庞大的正则表达式,我可能不应该感到自豪(但无论如何以一种恶心的方式),它正确匹配以下示例:
John Jeffries
John Jeffries, M.D.
John Jeffries, MD
John Jeffries and Jim Smith
John and Jim Jeffries
John Jeffries & Jennifer Wilkes-Smith, DDS, MD
John Jeffries, CPA & Jennifer Wilkes-Smith, DDS, MD
John Jeffries, C.P.A & Jennifer Wilkes-Smith, DDS, MD
John Jeffries, C.P.A., MD & Jennifer Wilkes-Smith, DDS, MD
John Jeffries M.D. and Jennifer Holmes CPA
John Jeffries M.D. & Jennifer Holmes CPA
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配器看起来像这样:
(?P<first_name>\S*\s*)?(?!and\s|&\s)(?P<last_name>[\w-]*\s*)(?P<titles1>,?\s*(?!and\s|&\s)[\w\.]*,*\s*(?!and\s|&\s)[\w\.]*)?(?P<connector>\sand\s|\s*&*\s*)?(?!and\s|&\s)(?P<first_name2>\S*\s*)(?P<last_name2>[\w-]*\s*)?(?P<titles2>,?\s*[\w\.]*,*\s*[\w\.]*)?
Run Code Online (Sandbox Code Playgroud)
(wtf对吧?)
为方便起见:http://www.pyregex.com/
所以,举个例子:
'John Jeffries, C.P.A., MD & Jennifer Wilkes-Smith, DDS, …Run Code Online (Sandbox Code Playgroud) 我有一些麻烦编译包括exprtk在内的c ++代码.我想编译一个给定的包示例(我称之为parser.cpp):
#include <cstdio>
#include <string>
#include "exprtk.hpp"
template <typename T>
void trig_function()
{
typedef exprtk::symbol_table<T> symbol_table_t;
typedef exprtk::expression<T> expression_t;
typedef exprtk::parser<T> parser_t;
std::string expression_string = "clamp(-1.0,sin(2 * pi * x) + cos(x / 2 * pi),+1.0)";
T x;
symbol_table_t symbol_table;
symbol_table.add_variable("x",x);
symbol_table.add_constants();
expression_t expression;
expression.register_symbol_table(symbol_table);
parser_t parser;
parser.compile(expression_string,expression);
for (x = T(-5); x <= T(+5); x += T(0.001))
{
T y = expression.value();
printf("%19.15f\t%19.15f\n",x,y);
}
}
int main()
{
trig_function<double>();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
因此我在cmd中使用以下命令:
g++ -c -o …Run Code Online (Sandbox Code Playgroud) 我正在处理一项任务,作为其中的一部分,我需要从字符串中提取整数。
我试过使用该atoi()函数,但它总是返回 a 0,所以我切换到strtol(),但它仍然返回 a 0。
目标是从字符串中提取整数并将它们作为参数传递给不同的函数。我正在使用一个函数,然后使用这些值来更新一些数据 ( update_stats)。
请记住,我对 C 语言编程还很陌生,但这是我的尝试:
void get_number (char str[]) {
char *end;
int num;
num = strtol(str, &end, 10);
update_stats(num);
num = strtol(end, &end, 10);
update_stats(num);
}
Run Code Online (Sandbox Code Playgroud)
这样做的目的是在一个字符串中"e5 d8"(例如)我将从该字符串中提取 the5和 the 8。
字符串的格式始终相同。
我怎样才能做到这一点?
我试图仅使用Bash从包名中删除版本.我有一个解决方案,但我不认为这是最好的解决方案,所以我想知道是否有更好的方法.更好,我的意思是更清洁,更容易理解.
假设我有字符串"my-program-1.0",我只想要"my-program".我目前的解决方案是:
#!/bin/bash
PROGRAM_FULL="my-program-1.0"
INDEX_OF_LAST_CHARACTER=`awk '{print match($0, "[A-Za-z0-9]-[0-9]")} <<< $PROGRAM_FULL`
PROGRAM_NAME=`cut -c -$INDEX_OF_LAST_CHARACTER <<< $PROGRAM_FULL`
Run Code Online (Sandbox Code Playgroud)
实际上,"包名称"语法是RPM文件名,如果重要的话.
谢谢!
所以我有一个有4个输入,2个文本,2个隐藏的表单.我从名称中抓取了两个文本输入值,它们是(get_me_two,get_me_three),我还抓住了表单操作(get_me.php).我现在要做的是抓住2个隐藏的输入,但不是值.我想自己抓住输入.
EG:这是我的表格:
<form action="get_me.php" method="post">
<input type="text" name="get_me_two">
<input type="text" name="get_me_three">
<input type="hidden" name="meta_required" value="from">
<input type="hidden" name="meta_forward_vars" value="0">
</form>
Run Code Online (Sandbox Code Playgroud)
我想从这里抓取的是两个隐藏的输入,而不是值,完整的字符串.
我不知道如何使用这些:PHP简单的HTML DOM解析器,如果有人知道一种方法,那将是伟大的,如果没有,如果有一个替代也会很棒.一旦我抓住这些,我计划将2个输入值传递给另一个带有隐藏字符串的页面,当然还有表单操作.
此外,如果有人感兴趣,这里是我的完整代码,其中包括简单的html dom功能.
<?php
include("simple_html_dom.php");
// Create DOM from URL or file
$html = file_get_html('form_show.php');
$html->load('
<form action="get_me.php" method="post">
<input type="text" name="get_me_two">
<input type="text" name="get_me_three">
<input type="hidden" name="meta_required" value="from">
<input type="hidden" name="meta_forward_vars" value="0">
</form>');
// Get the form action
foreach($html->find('form') as $element)
echo $element->action . '<br>';
// Get the input name
foreach($html->find('input') as $element)
echo $element->name …Run Code Online (Sandbox Code Playgroud) 我试图将utf-8字符串解析成"一口大小"的段.例如,我想将文本分解为"句子".
是否有一个全面的字符集(或正则表达式)对应于所有语言的句子结尾?我正在寻找可以捕捉拉丁时期,感叹号和审讯标记,中国和日本句号等的东西.
像上面这样的东西,但相当于一个逗号也会很棒.
unicode parsing character-encoding punctuation string-parsing
有很多SO问题似乎可以解决这个问题的变化.但它们往往是复杂的正则表达式答案,我希望我能找到更简单的东西.
给定location.host值
foo.mysite.com
app.foo.mysite.com
mysite.com
Run Code Online (Sandbox Code Playgroud)
我如何获得根域mysite.com?
我可以做一些事情,比如找到倒数第二个.,但这看起来很难看,对任何顶级域名都不行.co.uk.如果jQuery有一个包含这些信息的对象,我很乐意使用它.
我的目标是创建存在于所有子域中的cookie.要做到这一点,我需要找到.mysite.com.我不想硬编码.
我用它来分割字符串:
let split = Str.split (Str.regexp_string " ") in
let tokens = split instr in
....
Run Code Online (Sandbox Code Playgroud)
但问题是,例如这里是我要解析的句子:
pop esi
Run Code Online (Sandbox Code Playgroud)
并且在拆分之后它变成了(我使用辅助函数来打印tokens列表中的每个项目):
item: popitem: item: item: item: esi
Run Code Online (Sandbox Code Playgroud)
请注意,令牌列表中有三个空格.
我想知道string.splitPython中是否有类似可以解析的instr方式:
item: popitem: esi
Run Code Online (Sandbox Code Playgroud)
可能吗?